package com.cssw.fyzb.core.dao.video;

import com.cssw.fyzb.core.model.dodb.CmfVideoComment;
import com.ydn.dbframe.plugin.activerecord.Page;

/**
 * @author YangYiQun
 */
public interface VideoCommentDao {

    /**
     * 根据主键查询
     *
     * @param commentId
     * @return
     */
    CmfVideoComment findById(Long commentId);

    /**
     * 查看视频的评论列表
     *
     * @param pageNumber
     * @param pageSize
     * @return
     */
    Page<CmfVideoComment> pageByComment(Long videoId, int pageNumber, int pageSize);

    /**
     * 查看评论的回复列表
     *
     * @param pageNumber
     * @param pageSize
     * @return
     */
    Page<CmfVideoComment> pageByReply(Long commentId, int pageNumber, int pageSize);

    /**
     * 根据审核状态查询用户视频信息
     *
     * @param userId
     * @return
     */
    Page<CmfVideoComment> pageByUserId(Long userId, int pageNumber, int pageSize);

    /**
     * 添加评论
     *
     * @param userId 用户编号
     * @param content  内容标识
     * @param videoId   视频标识
     * @param replyCommentId  如果是回复的回复评论
     * @param parentCommentId  原始评论标识
     * @param type    类型 1-顶级评论 2-回复评论 3-回复的回复评论
     * @return
     */
    Long add(Long userId, String content, Long videoId, Long replyCommentId, Long parentCommentId, String type, Long toUserId);

    /**
     * 添加评论
     *
     * @param userId 用户编号
     * @param content  内容标识
     * @param videoId   视频标识
     * @return
     */
    Long add(Long userId, String content, Long videoId);

    /**
     * 删除评论
     *
     * @param commentId
     */
    void delete(Long commentId);

    /**
     * 增加点赞
     *
     * @param commentId
     */
    void incLikes(Long commentId);

    /**
     * 增加回复评论
     *
     * @param commentId
     */
    void incReplys(Long commentId);

}
